import webview
import os
from django.core.serializers.json import DjangoJSONEncoder
import json
# 定义主目录路径，指向当前文件所在目录下的 "dist" 文件夹
MAIN_DIR = os.path.join(os.path.dirname(__file__), "dist")
from bridgedjango import setup_django_urls,get_django_response
#pyinstaller --distpath out --noconfirm main.spec
class API:
    #本地API,可提供前端JS调用
    def do_something(self,path,data,token=None):        
        #print("do_something:",path,data)
        #调用Django处理请求
        request_path = path
        request_method = 'POST'
        request_body = data
        res = get_django_response(request_path, request_method, request_body,token)
        res = json.dumps(res,cls=DjangoJSONEncoder)#解决部分类型复发序列化问题，暂无其他解决方案待优化
        #print("do_something response:",res)
        return json.loads(res)
 
if __name__ == '__main__':
    setup_django_urls()
    #print("setup_django_urls done")
    api = API()
    # 定义模板文件路径，指向主目录下的 "index.html" 文件
    template = os.path.join(MAIN_DIR, "index.html")
    # 创建一个窗口，标题为 'API example'，加载指定的模板文件
    window = webview.create_window(
        'API example',
        url=template,
        js_api=api,
        width=1024,
        height=800
    )
    # 启动窗口
    webview.start(debug=False)